package com.greenold.approvalRecord.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.greenold.common.annotation.Excel;
import com.greenold.common.core.domain.BaseEntity;

/**
 * 审批记录对象 approval_record
 * 
 * @author ruoyi
 * @date 2025-10-17
 */
public class ApprovalRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private String id;

    /** 业务id（流程实例） */
    @Excel(name = "业务id", readConverterExp = "流=程实例")
    private String businessId;

    /** 审批意见 */
    @Excel(name = "审批意见")
    private String approvalOpinion;

    /** 审批类型(1:退住,2:请假,3:入住) */
    @Excel(name = "审批类型(1:退住,2:请假,3:入住)")
    private String approvalType;

    /** 审批人id */
    @Excel(name = "审批人id")
    private String approverId;

    /** 审批人 */
    @Excel(name = "审批人")
    private String approverName;

    /** 审批人角色 */
    @Excel(name = "审批人角色")
    private String approverRole;

    /** 下一个审核人id */
    @Excel(name = "下一个审核人id")
    private String nextApproverId;

    /** 下一个审核人 */
    @Excel(name = "下一个审核人")
    private String nextApproverName;

    /** 下一个审核人角色 */
    @Excel(name = "下一个审核人角色")
    private String nextApproverRole;

    /** 当前操作步骤 */
    @Excel(name = "当前操作步骤")
    private String currentStep;

    /** 下一步操作 */
    @Excel(name = "下一步操作")
    private String nextStep;

    /** 审核状态(1:通过,2:拒绝,3:驳回,4:撤回,5:撤销) */
    @Excel(name = "审核状态(1:通过,2:拒绝,3:驳回,4:撤回,5:撤销)")
    private String approvalStatus;

    /** 审核步骤 */
    @Excel(name = "审核步骤")
    private String approvalStep;

    /** 处理类型（0:已审批，1:已处理） */
    @Excel(name = "处理类型", readConverterExp = "0=:已审批，1:已处理")
    private String processType;

    /** 创建人 */
    @Excel(name = "创建人")
    private String createdBy;

    /** 更新人 */
    @Excel(name = "更新人")
    private String updatedBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    /** 扩展字段1 */
    @Excel(name = "扩展字段1")
    private String extend1;

    /** 扩展字段2 */
    @Excel(name = "扩展字段2")
    private String extend2;

    public void setId(String id) 
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }

    public void setBusinessId(String businessId) 
    {
        this.businessId = businessId;
    }

    public String getBusinessId() 
    {
        return businessId;
    }

    public void setApprovalOpinion(String approvalOpinion) 
    {
        this.approvalOpinion = approvalOpinion;
    }

    public String getApprovalOpinion() 
    {
        return approvalOpinion;
    }

    public void setApprovalType(String approvalType) 
    {
        this.approvalType = approvalType;
    }

    public String getApprovalType() 
    {
        return approvalType;
    }

    public void setApproverId(String approverId) 
    {
        this.approverId = approverId;
    }

    public String getApproverId() 
    {
        return approverId;
    }

    public void setApproverName(String approverName) 
    {
        this.approverName = approverName;
    }

    public String getApproverName() 
    {
        return approverName;
    }

    public void setApproverRole(String approverRole) 
    {
        this.approverRole = approverRole;
    }

    public String getApproverRole() 
    {
        return approverRole;
    }

    public void setNextApproverId(String nextApproverId) 
    {
        this.nextApproverId = nextApproverId;
    }

    public String getNextApproverId() 
    {
        return nextApproverId;
    }

    public void setNextApproverName(String nextApproverName) 
    {
        this.nextApproverName = nextApproverName;
    }

    public String getNextApproverName() 
    {
        return nextApproverName;
    }

    public void setNextApproverRole(String nextApproverRole) 
    {
        this.nextApproverRole = nextApproverRole;
    }

    public String getNextApproverRole() 
    {
        return nextApproverRole;
    }

    public void setCurrentStep(String currentStep) 
    {
        this.currentStep = currentStep;
    }

    public String getCurrentStep() 
    {
        return currentStep;
    }

    public void setNextStep(String nextStep) 
    {
        this.nextStep = nextStep;
    }

    public String getNextStep() 
    {
        return nextStep;
    }

    public void setApprovalStatus(String approvalStatus) 
    {
        this.approvalStatus = approvalStatus;
    }

    public String getApprovalStatus() 
    {
        return approvalStatus;
    }

    public void setApprovalStep(String approvalStep) 
    {
        this.approvalStep = approvalStep;
    }

    public String getApprovalStep() 
    {
        return approvalStep;
    }

    public void setProcessType(String processType) 
    {
        this.processType = processType;
    }

    public String getProcessType() 
    {
        return processType;
    }

    public void setCreatedBy(String createdBy) 
    {
        this.createdBy = createdBy;
    }

    public String getCreatedBy() 
    {
        return createdBy;
    }

    public void setUpdatedBy(String updatedBy) 
    {
        this.updatedBy = updatedBy;
    }

    public String getUpdatedBy() 
    {
        return updatedBy;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    public void setExtend1(String extend1) 
    {
        this.extend1 = extend1;
    }

    public String getExtend1() 
    {
        return extend1;
    }

    public void setExtend2(String extend2) 
    {
        this.extend2 = extend2;
    }

    public String getExtend2() 
    {
        return extend2;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("businessId", getBusinessId())
            .append("approvalOpinion", getApprovalOpinion())
            .append("approvalType", getApprovalType())
            .append("approverId", getApproverId())
            .append("approverName", getApproverName())
            .append("approverRole", getApproverRole())
            .append("nextApproverId", getNextApproverId())
            .append("nextApproverName", getNextApproverName())
            .append("nextApproverRole", getNextApproverRole())
            .append("currentStep", getCurrentStep())
            .append("nextStep", getNextStep())
            .append("approvalStatus", getApprovalStatus())
            .append("approvalStep", getApprovalStep())
            .append("processType", getProcessType())
            .append("remark", getRemark())
            .append("createdBy", getCreatedBy())
            .append("updatedBy", getUpdatedBy())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .append("extend1", getExtend1())
            .append("extend2", getExtend2())
            .toString();
    }
}
